Skip to content

Conversation

@hai719
Copy link
Contributor

@hai719 hai719 commented Dec 8, 2025

What was changed

Support replication between Temporal servers with arbitrary shard counts.

Why?

Checklist

  1. Closes

  2. How was this tested:

  1. Any docs updates needed?

@hai719 hai719 requested a review from temporal-nick December 8, 2025 17:29
reportStreamValue: reportStreamValue,
shardCountConfig: shardCountConfig,
lcmParameters: lcmParameters,
clusterConnection: clusterConnection,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ClusterConnection is a huge context to pass around (MuxManager, inbound and outbound servers and clients, now ShardManager and intraProxyManager and Send/Ack channels). Can this code be written without this back-reference?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Refactored the structure and removed the use of ClusterConnection

@@ -0,0 +1,43 @@
worker_processes 1;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we using nginx in this change? I don't see it being started in main.go

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's only for local testing for multi-proxy case. I can remove it.

uses: azure/setup-helm@v4.3.0
with:
version: v3.17.3
version: v3.19.4
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what is this for? do the change in a separate PR?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is to fix the helm error that I didn't see in main branch:

Error: plugin is installed but unusable: failed to load plugin at "/home/runner/.local/share/helm/plugins/helm-unittest.git/plugin.yaml": error unmarshaling JSON: while decoding JSON: json: unknown field "platformHooks"
Error: Process completed with exit code 1.```

}

// Add debug endpoint handler
http.HandleFunc("/debug/connections", func(w http.ResponseWriter, r *http.Request) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice stuff but prefer having a separate PR for this

Comment on lines +22 to +25
# shardCount:
# mode: "lcm"
# localShardCount: 3
# remoteShardCount: 2
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we remove comment code? we can create separate config if needed.

Comment on lines +30 to +32
history.shardUpdateMinInterval:
- value: 1s
history.ReplicationStreamSendEmptyTaskDuration:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what are these config for?

) error {

i.logger.Debug("InterceptStream", tag.NewAnyTag("method", info.FullMethod))
// Skip translation for intra-proxy streams
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants